<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" >

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/turbolinks/5.2.0/turbolinks.js" integrity="sha256-iM4Yzi/zLj/IshPWMC1IluRxTtRjMqjPGd97TZ9yYpU=" crossorigin="anonymous"></script>
  <link href="https://fonts.googleapis.com/css?family=Roboto+Mono" rel="stylesheet">
  <link href="https://fonts.googleapis.com/css?family=Cousine|Inconsolata" rel="stylesheet">
  <link rel="shortcut icon" type="image/png" href="/favicon.png">

  <link rel="stylesheet" href="/css/style.css">
  <link rel="stylesheet" href="/css/css/fontawesome-all.min.css">
  <link rel="stylesheet" href="/css/css/work-sans-v7.css">
  <script src="/js/main.js"></script>

  <!-- Begin Jekyll SEO tag v2.6.1 -->
<title>PY: Claim Rewards | Hive Developer</title>
<meta name="generator" content="Jekyll v4.0.0" />
<meta property="og:title" content="PY: Claim Rewards" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="How to claim rewards using Python." />
<meta property="og:description" content="How to claim rewards using Python." />
<link rel="canonical" href="claim_rewards.html" />
<meta property="og:url" content="claim_rewards.html" />
<meta property="og:site_name" content="Hive Developer" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2020-08-26T11:52:22-07:00" />
<script type="application/ld+json">
{"description":"How to claim rewards using Python.","mainEntityOfPage":{"@type":"WebPage","@id":"claim_rewards.html"},"@type":"BlogPosting","url":"claim_rewards.html","headline":"PY: Claim Rewards","dateModified":"2020-08-26T11:52:22-07:00","datePublished":"2020-08-26T11:52:22-07:00","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->


  
</head>
<body>
<header>
  <h1>
    <button type="button" class="open-nav" id="open-nav"></button>
    <a href="/"  class="logo-link"><img src="/images/logotype_black.svg" height="40" alt="Hive Developer logo"></a>
  </h1>

  
  <form action="/search/" method="get">
    <input type="text" name="q" id="search-input" placeholder="Search">
    <input type="submit" value="Search" style="display: none;">
  </form>
  

  <div id="sidebar" class="sidebar">
	
	
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/">
		<h6 class="ctrl-nav-section title">Introduction</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/#introduction-welcome">Welcome to Hive</a></li>
						
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/quickstart/">
		<h6 class="ctrl-nav-section title">Quickstart</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/quickstart/#quickstart-choose-library">Choose Library</a></li>
						
					
						
						<li><a href="/quickstart/#quickstart-hive-full-nodes">Hive Nodes</a></li>
						
					
						
						<li><a href="/quickstart/#quickstart-testnet">Hive Testnet</a></li>
						
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/tutorials/">
		<h6 class="ctrl-nav-section title">Tutorials</h6>
		<ul class="cont-nav-section content">
			
				
					
						<li><a href="/tutorials/#tutorials-javascript">Javascript</a></li>
					
				
					
						<li><a href="/tutorials/#tutorials-python">Python</a></li>
					
				
					
						<li><a href="/tutorials/#tutorials-ruby">Ruby</a></li>
					
				
					
						<li><a href="/tutorials/#tutorials-recipes">Recipes</a></li>
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/services/">
		<h6 class="ctrl-nav-section title">Services</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/services/#services-hive-blog">hive.blog</a></li>
						
					
						
						<li><a href="/services/#services-hivesigner">HiveSigner</a></li>
						
					
						
						<li><a href="/services/#services-jussi">Jussi</a></li>
						
					
						
						<li><a href="/services/#services-imagehoster">ImageHoster</a></li>
						
					
						
						<li><a href="/services/#services-dhf">DHF</a></li>
						
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/apidefinitions/">
		<h6 class="ctrl-nav-section title">Appbase API</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/apidefinitions/#apidefinitions-condenser-api">Condenser Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-bridge">Bridge</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-account-by-key-api">Account By Key Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-account-history-api">Account History Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-block-api">Block Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-database-api">Database Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-debug-node-api">Debug Node Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-follow-api">Follow Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-jsonrpc">Jsonrpc</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-market-history-api">Market History Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-network-broadcast-api">Network Broadcast Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-rc-api">Rc Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-reputation-api">Reputation Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-rewards-api">Rewards Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-tags-api">Tags Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-transaction-status-api">Transaction Status Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-witness-api">Witness Api</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-broadcast-ops">Broadcast Ops</a></li>
						
					
						
						<li><a href="/apidefinitions/#apidefinitions-broadcast-ops-communities">Broadcast Ops Communities</a></li>
						
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/resources/">
		<h6 class="ctrl-nav-section title">Resources</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/resources/#resources-overview">Overview</a></li>
						
					
						
						<li><a href="/resources/#resources-client-libs">Client Libraries</a></li>
						
					
						
						<li><a href="/resources/#resources-bluepaper">Bluepaper</a></li>
						
					
						
						<li><a href="/resources/#resources-whitepaper">Whitepaper</a></li>
						
					
						
						<li><a href="/resources/#resources-tools">Tools</a></li>
						
					
						
						<li><a href="/resources/#resources-hivesigner-libs">Hivesigner Libs</a></li>
						
					
						
						<li><a href="/resources/#resources-hive-keychain">Hive Keychain</a></li>
						
					
						
						<li><a href="/resources/#resources-developeradvocate">Community & Help</a></li>
						
					
				
			
		</ul>
	</section>
	
		
    <section class="pnl-main-nav-section main-nav-section" url="/glossary/">
		<h6 class="ctrl-nav-section title">Glossary</h6>
		<ul class="cont-nav-section content">
			
				
					
					
						
						<li><a href="/glossary/#glossary-chain-basics">Chain Basics</a></li>
						
					
						
					
						
						<li><a href="/glossary/#glossary-governance">Governance</a></li>
						
					
						
						<li><a href="/glossary/#glossary-transactions">Transactions</a></li>
						
					
						
						<li><a href="/glossary/#glossary-api">API</a></li>
						
					
						
						<li><a href="/glossary/#glossary-market">Market</a></li>
						
					
				
			
		</ul>
	</section>
	
</div>



  <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
</header>
<div class="main" id="top">
  <div class="hero">
    <h1 class="hero__h1">Hive Developer Portal </h1>
    <img class="hero__img" src="/images/honey-comb-92.png" style="position: relative; top: 10px;" />
  </div>
  <section id="tutorials-python-claim-rewards" class="row tutorials-python-claim-rewards">
	<h3>
		<a id="tutorials-python-claim-rewards">
			PY: Claim Rewards
			
		</a>
	</h3>
	
		<span class="description"><p>How to claim rewards using Python.</p>
</span>
	

	<p><span class="fa-pull-left top-of-tutorial-repo-link"><span class="first-word">Full</span>, runnable src of <a href="https://gitlab.syncad.com/hive/devportal/-/tree/master/tutorials/python/tutorials/23_claim_rewards">Claim Rewards</a> can be downloaded as part of: <a href="https://gitlab.syncad.com/hive/devportal/-/tree/master/tutorials/python">tutorials/python</a>.</span>
<br /></p>

<p>In this tutorial we show you how to check the STEEM, SBD and STEEM POWER rewards balances of an account on the <strong>Steem</strong> blockchain, and how to claim either a portion or all of the rewards for an account using the <code class="highlighter-rouge">commit</code> class found within the <a href="https://github.com/steemit/steem-python">steem-python</a> library.</p>

<h2 id="intro">Intro</h2>

<p>The Steem python library has a built-in function to transmit transactions to the blockchain. We are using the <code class="highlighter-rouge">claim_reward_balance</code> method found within the <code class="highlighter-rouge">commit</code> class in the library. Before we transmit a claim, we use the <code class="highlighter-rouge">get_account</code> function to check the current rewards balance of the account to see what is available to claim. The <code class="highlighter-rouge">claim</code> method has 4 parameters:</p>

<ol>
  <li><em>reward steem</em> - The amount of STEEM to claim</li>
  <li><em>reward sbd</em> - The amount of SBD to claim</li>
  <li><em>reward vests</em> - The amount of VESTS (STEEM POWER) to claim</li>
  <li><em>account</em> - The source account for the claim</li>
</ol>

<h2 id="steps">Steps</h2>

<ol>
  <li><a href="#setup"><strong>App setup</strong></a> - Library install and import. Connection to testnet</li>
  <li><a href="#userinfo"><strong>User information and steem node</strong></a> - Input user information and connection to Steem node</li>
  <li><a href="#balance"><strong>Check reward balance</strong></a> - Check current rewards balances of user account</li>
  <li><a href="#commit"><strong>Claim commit</strong></a> - Input amount of rewards to claim and commit to blockchain</li>
  <li><a href="#update"><strong>Balance update</strong></a> - Check new rewards balances after completed claim</li>
</ol>

<h4 id="1-app-setup-">1. App setup <a name="setup"></a></h4>

<p>In this tutorial we use 2 packages:</p>

<ul>
  <li><code class="highlighter-rouge">steem</code> - steem-python library and interaction with Blockchain</li>
  <li><code class="highlighter-rouge">pick</code> - helps select the query type interactively</li>
</ul>

<p>We import the libraries and connect to the <code class="highlighter-rouge">testnet</code>.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="nn">steembase</span>
<span class="kn">import</span> <span class="nn">steem</span>
<span class="kn">from</span> <span class="nn">pick</span> <span class="kn">import</span> <span class="n">pick</span>
<span class="kn">from</span> <span class="nn">steem.amount</span> <span class="kn">import</span> <span class="n">Amount</span>

<span class="n">steembase</span><span class="o">.</span><span class="n">chains</span><span class="o">.</span><span class="n">known_chains</span><span class="p">[</span><span class="s">'STEEM'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
    <span class="s">'chain_id'</span><span class="p">:</span> <span class="s">'79276aea5d4877d9a25892eaa01b0adf019d3e5cb12a97478df3298ccdd01673'</span><span class="p">,</span>
    <span class="s">'prefix'</span><span class="p">:</span> <span class="s">'STX'</span><span class="p">,</span> <span class="s">'steem_symbol'</span><span class="p">:</span> <span class="s">'STEEM'</span><span class="p">,</span> <span class="s">'sbd_symbol'</span><span class="p">:</span> <span class="s">'SBD'</span><span class="p">,</span> <span class="s">'vests_symbol'</span><span class="p">:</span> <span class="s">'VESTS'</span>
<span class="p">}</span>
</code></pre></div></div>

<p>Because this tutorial alters the blockchain we connect to a testnet so we don’t create spam on the production server.</p>

<h4 id="2-user-information-and-steem-node-">2. User information and steem node <a name="userinfo"></a></h4>

<p>We require the <code class="highlighter-rouge">private active key</code> of the user in order for the claim to be committed to the blockchain. This is why we are using a testnet. The values are supplied via the terminal/console before we initialise the steem class. There are some demo accounts available but we encourage you to create your own accounts on this testnet and create balances you can claim; it’s good practice.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#capture user information
</span><span class="n">username</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">'Enter username: '</span><span class="p">)</span> <span class="c1">#demo account: cdemo
</span><span class="n">wif</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">'Enter private ACTIVE key: '</span><span class="p">)</span> <span class="c1">#demo account: 5KaNM84WWSqzwKzY82fXPaUW43idbLnPqf5SfjGxLfw6eV2kAP3
</span>
<span class="c1">#connect node
</span><span class="n">client</span> <span class="o">=</span> <span class="n">steem</span><span class="o">.</span><span class="n">Steem</span><span class="p">(</span><span class="n">nodes</span><span class="o">=</span><span class="p">[</span><span class="s">'https://testnet.steem.vc'</span><span class="p">],</span><span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">wif</span><span class="p">])</span>
</code></pre></div></div>

<h4 id="3-check-reward-balance-">3. Check reward balance <a name="balance"></a></h4>

<p>We send a query to the blockchain using the <code class="highlighter-rouge">get_account</code> function to check if the username exists on the blockchain. We also use this function to get a clear picture of the available rewards that can be claimed and display this on the console/terminal.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#get account reward balances
</span><span class="n">userinfo</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">get_account</span><span class="p">(</span><span class="n">username</span><span class="p">)</span>

<span class="k">if</span><span class="p">(</span><span class="n">userinfo</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">)</span> <span class="p">:</span>
    <span class="k">print</span><span class="p">(</span><span class="s">'Oops. Looks like user '</span> <span class="o">+</span> <span class="n">username</span> <span class="o">+</span> <span class="s">' doesn</span><span class="se">\'</span><span class="s">t exist on this chain!'</span><span class="p">)</span>
    <span class="nb">exit</span><span class="p">()</span>

<span class="n">reward_steem</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_steem_balance'</span><span class="p">]</span>
<span class="n">reward_sbd</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_sbd_balance'</span><span class="p">]</span>
<span class="n">reward_sp</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_vesting_steem'</span><span class="p">]</span>
<span class="n">reward_vests</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_vesting_balance'</span><span class="p">]</span>

<span class="k">print</span><span class="p">(</span><span class="s">'Reward Balances:'</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> 
    <span class="s">'STEEM: '</span> <span class="o">+</span> <span class="n">reward_steem</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> 
    <span class="s">'SBD: '</span> <span class="o">+</span> <span class="n">reward_sbd</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> 
    <span class="s">'STEEM POWER: '</span> <span class="o">+</span> <span class="n">reward_sp</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span>
    <span class="s">'VESTS: '</span> <span class="o">+</span> <span class="n">reward_vests</span>
    <span class="p">)</span>

<span class="nb">input</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Press enter to continue to claim selection'</span><span class="p">)</span>
</code></pre></div></div>

<h4 id="4-claim-commit-">4. Claim commit <a name="commit"></a></h4>

<p>An option is provided to either claim all rewards at once or to specify specific amounts to be claimed for each individual reward balance. If you are using one of Steemit’s demo accounts, please leave some rewards for others to claim!</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#choice of claim
</span><span class="n">title</span> <span class="o">=</span> <span class="s">'Please choose claim type: '</span>
<span class="n">options</span> <span class="o">=</span> <span class="p">[</span><span class="s">'ALL'</span><span class="p">,</span> <span class="s">'SELECTED'</span><span class="p">,</span> <span class="s">'CANCEL'</span><span class="p">]</span>
<span class="n">option</span><span class="p">,</span> <span class="n">index</span> <span class="o">=</span> <span class="n">pick</span><span class="p">(</span><span class="n">options</span><span class="p">,</span> <span class="n">title</span><span class="p">)</span>
</code></pre></div></div>

<p>When the option to claim all rewards is selected, the claim parameters are automatically assigned from the <code class="highlighter-rouge">get_accounts</code> query. We also check that there are in fact outstanding rewards balances before we commit the claim.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#commit claim based on selection
</span><span class="k">if</span> <span class="n">option</span> <span class="o">==</span> <span class="s">'ALL'</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">Amount</span><span class="p">(</span><span class="n">reward_steem</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">+</span> <span class="n">Amount</span><span class="p">(</span><span class="n">reward_sbd</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">+</span> <span class="n">Amount</span><span class="p">(</span><span class="n">reward_vests</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
        <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'No rewards to claim'</span><span class="p">)</span>
        <span class="nb">exit</span><span class="p">()</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="n">client</span><span class="o">.</span><span class="n">claim_reward_balance</span><span class="p">(</span><span class="n">reward_steem</span><span class="p">,</span> <span class="n">reward_sbd</span><span class="p">,</span> <span class="n">reward_vests</span><span class="p">,</span> <span class="n">username</span><span class="p">)</span>
        <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'All reward balances have been claimed. New reward balances are:'</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">option</span> <span class="o">==</span> <span class="s">'CANCEL'</span><span class="p">:</span>
        <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Operation cancelled'</span><span class="p">)</span>
        <span class="nb">exit</span><span class="p">()</span>
    <span class="k">else</span><span class="p">:</span>
        <span class="n">claim_steem</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Please enter the amount of STEEM to claim: '</span><span class="p">)</span> <span class="o">+</span> <span class="s">' STEEM'</span>
        <span class="n">claim_sbd</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">'Please enter the amount of SBD to claim: '</span><span class="p">)</span> <span class="o">+</span> <span class="s">' SBD'</span>
        <span class="n">claim_vests</span> <span class="o">=</span> <span class="nb">input</span><span class="p">(</span><span class="s">'Please enter the amount of VESTS to claim: '</span><span class="p">)</span> <span class="o">+</span> <span class="s">' VESTS'</span>
        <span class="k">if</span> <span class="n">Amount</span><span class="p">(</span><span class="n">claim_steem</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">+</span> <span class="n">Amount</span><span class="p">(</span><span class="n">claim_sbd</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">+</span> <span class="n">Amount</span><span class="p">(</span><span class="n">claim_vests</span><span class="p">)</span><span class="o">.</span><span class="n">amount</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
            <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Zero values entered, no claim to submit'</span><span class="p">)</span>
            <span class="nb">exit</span><span class="p">()</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="k">if</span> <span class="n">claim_steem</span> <span class="o">&gt;</span> <span class="n">reward_steem</span> <span class="ow">or</span> <span class="n">claim_sbd</span> <span class="o">&gt;</span> <span class="n">reward_sbd</span> <span class="ow">or</span> <span class="n">claim_vests</span> <span class="o">&gt;</span> <span class="n">reward_vests</span><span class="p">:</span>
                <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Requested claim value higher than available rewards'</span><span class="p">)</span>
                <span class="nb">exit</span><span class="p">()</span>
            <span class="k">else</span><span class="p">:</span>
                <span class="n">client</span><span class="o">.</span><span class="n">claim_reward_balance</span><span class="p">(</span><span class="n">claim_steem</span><span class="p">,</span> <span class="n">claim_sbd</span><span class="p">,</span> <span class="n">claim_vests</span><span class="p">,</span> <span class="n">username</span><span class="p">)</span>
                <span class="k">print</span><span class="p">(</span><span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="s">'Claim has been processed. New reward balances are:'</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span><span class="p">)</span>

</code></pre></div></div>

<p>When doing only a selected claim of available rewards, the values are captured in the console/terminal. The inputs cannot be negative, must be less than or equal to the available reward and at least ONE of the inputs needs to be greater than zero for the claim to be able to transmit. The result of the selected option is printed on the UI.</p>

<h4 id="5-balance-update-">5. Balance update <a name="update"></a></h4>

<p>As a final check we run the account query again to get updated values for the available rewards balances.</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c1">#get updated account reward balances
</span><span class="nb">input</span><span class="p">(</span><span class="s">"Press enter for new account balances"</span><span class="p">)</span>

<span class="n">userinfo</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">get_account</span><span class="p">(</span><span class="n">username</span><span class="p">)</span>

<span class="n">reward_steem</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_steem_balance'</span><span class="p">]</span>
<span class="n">reward_sbd</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_sbd_balance'</span><span class="p">]</span>
<span class="n">reward_sp</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_vesting_steem'</span><span class="p">]</span>
<span class="n">reward_vests</span> <span class="o">=</span> <span class="n">userinfo</span><span class="p">[</span><span class="s">'reward_vesting_balance'</span><span class="p">]</span>

<span class="k">print</span><span class="p">(</span><span class="s">'STEEM: '</span> <span class="o">+</span> <span class="n">reward_steem</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> 
    <span class="s">'SBD: '</span> <span class="o">+</span> <span class="n">reward_sbd</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> 
    <span class="s">'STEEM POWER: '</span> <span class="o">+</span> <span class="n">reward_sp</span> <span class="o">+</span> <span class="s">'</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span>
    <span class="s">'VESTS: '</span> <span class="o">+</span> <span class="n">reward_vests</span>
    <span class="p">)</span>
</code></pre></div></div>

<p>We encourage users to play around with different values and data types to fully understand how this process works. You can also check the balances and transaction history on the <a href="http://condenser.steem.vc/">testnet portal</a>.</p>

<h3 id="to-run-the-tutorial">To Run the tutorial</h3>

<ol>
  <li><a href="getting_started.html">review dev requirements</a></li>
  <li><code class="highlighter-rouge">git clone https://gitlab.syncad.com/hive/devportal.git</code></li>
  <li><code class="highlighter-rouge">cd devportal/tutorials/python/23_claim_rewards</code></li>
  <li><code class="highlighter-rouge">pip install -r requirements.txt</code></li>
  <li><code class="highlighter-rouge">python index.py</code></li>
  <li>After a few moments, you should see a prompt for input in terminal screen.</li>
</ol>

<hr />

</section>

</div>
<div class="footer">
  <a href="#">Back to top</a>
</div>
<script>
    document.getElementById("open-nav").addEventListener("click", function () {
        document.body.classList.toggle("nav-open");
    });
</script>
</body>
</html>


<script src="/js/adjust.js"></script>

